<?php
namespace mbilling\BillingBundle\Validator\Constraints;
use Doctrine\ORM\EntityManager;
use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\ConstraintValidator;

class DomainValidator extends ConstraintValidator
{
    protected $idna;
    protected $check_domain;
    protected $em;
    
    public function __construct(EntityManager $entityManager, $checkdomain, $idna)
    {
        $this->em = $entityManager;
        $this->check_domain = $checkdomain;
        $this->idna = $idna;
    }

    public function isValid($value, Constraint $constraint)
    {
        /*$this->setMessage('dsagfd');
        return false;*/
        $this->check_domain->init($value);
        if ($this->check_domain->is_valid())
        {
            if ($this->check_domain->is_available_zone())
            {
                if ($this->check_domain->is_not_regOnServer())
                {
                    return true;
                    if ($this->check_domain->is_available())
                    {
                        return true;
                    }
                    else
                    {
                        $this->setMessage('Домен недоступен');
                        return false;
                    }
                }
                else
                {
                    $this->setMessage('Домен уже зарегистрирован на сервере');
                    return false;
                }    
            }
            else
            {
                $this->setMessage('Зона не доступна на сервере');
                return false;
            }
        }
        else
        {
            $this->setMessage('Неправильный формат домена');
            return false;
        }        
    }
}
